class Solution {
    // 学习新算法：高精度加法
    // 模拟列竖式运算
    public String addBinary(String a, String b) {
        StringBuffer ret = new StringBuffer();
        // 定义一个变量进行值的存储
        int cur1 = a.length() - 1, cur2 = b.length() - 1, t = 0;
        while (cur1 >= 0 || cur2 >= 0 || t != 0) {
            if (cur1 >= 0) {
                t += a.charAt(cur1--) - '0';
            }
            if (cur2 >= 0) {
                t += b.charAt(cur2--) - '0';
            }
            ret.append((char) ('0' + (char) (t % 2)));
            t /= 2;
        }
        ret.reverse();
        return ret.toString();
    }
}
public class Test01 {
}
